package com.partynetwork.iparty.app.bean;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.ObjectMapper;
import com.partynetwork.dataprovider.util.L;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.iparty.app.AppException;
import com.partynetwork.iparty.info.IpartyInfo;
import com.partynetwork.iparty.info.IshareInfo;
public class ShareList {
private List<IshareInfo> shareList = new ArrayList<IshareInfo>();
public List<IshareInfo> getShareList() {
return shareList;
}
public void setShareList(List<IshareInfo> shareList) {
this.shareList = shareList;
}
public static ShareList parse(InputStream stream) throws AppException {
ShareList shareList = new ShareList();
ObjectMapper om = new ObjectMapper();
try {
JsonNode rootNode = om.readTree(stream);
int result = rootNode.path("result").getIntValue();
if (result == 0) {
// 失败
String why = rootNode.path("description").getTextValue();
L.i("发送失败:" + why);
throw AppException.fail(why);
} else if (result == 1) {
// 成功
JsonNode dataNode = rootNode.path("details");
JsonFactory f = new JsonFactory();
JsonParser jp = f.createJsonParser(dataNode.toString());
jp.nextToken();
while (jp.nextToken() == JsonToken.START_OBJECT) {
IshareInfo info = om.readValue(jp, IshareInfo.class);
shareList.getShareList().add(info);
}
return shareList;
} else {
throw AppException.fail("接口异常");
}
} catch (JsonProcessingException e) {
L.i("json转换失败");
throw AppException.json(e);
} catch (IOException e) {
throw AppException.io(e);
}
}
}